{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<frozen importlib._bootstrap>:219: RuntimeWarning: sklearn.tree._splitter.Splitter size changed, may indicate binary incompatibility. Expected 360 from C header, got 1160 from PyObject\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "%matplotlib inline\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sksurv.ensemble import ExtraSurvivalTrees\n",
    "from sksurv.datasets import get_x_y "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# note:训练集随机划分为训练集和验证集（测试集无法用指标验证，后续对比在各指标上的表现）\n",
    "trainDataPath = '../data/trainSet.xlsx'\n",
    "trainData = pd.read_excel(trainDataPath)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "trainData['state'] = trainData['state'].astype(int).astype(bool)\n",
    "trainData['lifetime'] = trainData['lifetime'].astype(int) #.astype(float)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>novelty</th>\n",
       "      <th>number_of_patents_cited</th>\n",
       "      <th>science_linkage</th>\n",
       "      <th>number_of_IPC4</th>\n",
       "      <th>number_of_IPC8</th>\n",
       "      <th>number_of_claims</th>\n",
       "      <th>number_of_independent_claims</th>\n",
       "      <th>number_of_dependent_claims</th>\n",
       "      <th>number_of_priorities</th>\n",
       "      <th>review_duration</th>\n",
       "      <th>...</th>\n",
       "      <th>number_of_patent_families_inpadoc</th>\n",
       "      <th>number_of_countries_applying</th>\n",
       "      <th>number_of_inventors</th>\n",
       "      <th>number_of_patentees</th>\n",
       "      <th>number_of_inventor_patents</th>\n",
       "      <th>number_of_first_inventor_patents</th>\n",
       "      <th>number_of_patentee_patents</th>\n",
       "      <th>patentee_category</th>\n",
       "      <th>state</th>\n",
       "      <th>lifetime</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>4.050685</td>\n",
       "      <td>-0.138848</td>\n",
       "      <td>-0.166053</td>\n",
       "      <td>-0.840604</td>\n",
       "      <td>-0.589710</td>\n",
       "      <td>0.050517</td>\n",
       "      <td>0.015246</td>\n",
       "      <td>0.050717</td>\n",
       "      <td>-0.31303</td>\n",
       "      <td>4.287328</td>\n",
       "      <td>...</td>\n",
       "      <td>0.016395</td>\n",
       "      <td>-0.129599</td>\n",
       "      <td>-0.574227</td>\n",
       "      <td>-0.950091</td>\n",
       "      <td>-0.452219</td>\n",
       "      <td>-0.396837</td>\n",
       "      <td>-0.590359</td>\n",
       "      <td>0.008336</td>\n",
       "      <td>True</td>\n",
       "      <td>146</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4.050685</td>\n",
       "      <td>-0.010712</td>\n",
       "      <td>-0.166053</td>\n",
       "      <td>1.899835</td>\n",
       "      <td>1.231297</td>\n",
       "      <td>0.818608</td>\n",
       "      <td>-0.568581</td>\n",
       "      <td>0.985000</td>\n",
       "      <td>-0.31303</td>\n",
       "      <td>6.255681</td>\n",
       "      <td>...</td>\n",
       "      <td>0.058985</td>\n",
       "      <td>0.282930</td>\n",
       "      <td>0.988762</td>\n",
       "      <td>-0.950091</td>\n",
       "      <td>-0.388978</td>\n",
       "      <td>-0.396837</td>\n",
       "      <td>-0.590359</td>\n",
       "      <td>0.008336</td>\n",
       "      <td>True</td>\n",
       "      <td>219</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-0.383335</td>\n",
       "      <td>-0.222137</td>\n",
       "      <td>-0.144048</td>\n",
       "      <td>-0.840604</td>\n",
       "      <td>-1.044961</td>\n",
       "      <td>-0.168937</td>\n",
       "      <td>-1.152409</td>\n",
       "      <td>0.050717</td>\n",
       "      <td>-0.31303</td>\n",
       "      <td>3.382949</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.068785</td>\n",
       "      <td>-0.281584</td>\n",
       "      <td>-1.095223</td>\n",
       "      <td>-0.950091</td>\n",
       "      <td>-0.473299</td>\n",
       "      <td>-0.396837</td>\n",
       "      <td>-0.589792</td>\n",
       "      <td>-3.538409</td>\n",
       "      <td>True</td>\n",
       "      <td>146</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "    novelty  number_of_patents_cited  science_linkage  number_of_IPC4  \\\n",
       "0  4.050685                -0.138848        -0.166053       -0.840604   \n",
       "1  4.050685                -0.010712        -0.166053        1.899835   \n",
       "2 -0.383335                -0.222137        -0.144048       -0.840604   \n",
       "\n",
       "   number_of_IPC8  number_of_claims  number_of_independent_claims  \\\n",
       "0       -0.589710          0.050517                      0.015246   \n",
       "1        1.231297          0.818608                     -0.568581   \n",
       "2       -1.044961         -0.168937                     -1.152409   \n",
       "\n",
       "   number_of_dependent_claims  number_of_priorities  review_duration  ...  \\\n",
       "0                    0.050717              -0.31303         4.287328  ...   \n",
       "1                    0.985000              -0.31303         6.255681  ...   \n",
       "2                    0.050717              -0.31303         3.382949  ...   \n",
       "\n",
       "   number_of_patent_families_inpadoc  number_of_countries_applying  \\\n",
       "0                           0.016395                     -0.129599   \n",
       "1                           0.058985                      0.282930   \n",
       "2                          -0.068785                     -0.281584   \n",
       "\n",
       "   number_of_inventors  number_of_patentees  number_of_inventor_patents  \\\n",
       "0            -0.574227            -0.950091                   -0.452219   \n",
       "1             0.988762            -0.950091                   -0.388978   \n",
       "2            -1.095223            -0.950091                   -0.473299   \n",
       "\n",
       "   number_of_first_inventor_patents  number_of_patentee_patents  \\\n",
       "0                         -0.396837                   -0.590359   \n",
       "1                         -0.396837                   -0.590359   \n",
       "2                         -0.396837                   -0.589792   \n",
       "\n",
       "   patentee_category  state  lifetime  \n",
       "0           0.008336   True       146  \n",
       "1           0.008336   True       219  \n",
       "2          -3.538409   True       146  \n",
       "\n",
       "[3 rows x 21 columns]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "trainData[:3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "feature, label = get_x_y(data_frame = trainData, \n",
    "               attr_labels = ['state', 'lifetime'],\n",
    "               pos_label = True,  #event发生对应的值（专利失效-True）\n",
    "               survival=True)\n",
    "# note：自己定义相同数据类型，无法用于训练模型。只能使用get_x_y()来构造数据集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "xTrain, xValid, yTrain, yValid = train_test_split(feature, label, test_size=0.2, random_state=0)\n",
    "# note:这里Valid在功能上算是测试集。此处名称不再做修改，可全部替换成Test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>ExtraSurvivalTrees(max_depth=13, max_features=6, min_samples_leaf=10,\n",
       "                   min_samples_split=80, n_estimators=140)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">ExtraSurvivalTrees</label><div class=\"sk-toggleable__content\"><pre>ExtraSurvivalTrees(max_depth=13, max_features=6, min_samples_leaf=10,\n",
       "                   min_samples_split=80, n_estimators=140)</pre></div></div></div></div></div>"
      ],
      "text/plain": [
       "ExtraSurvivalTrees(max_depth=13, max_features=6, min_samples_leaf=10,\n",
       "                   min_samples_split=80, n_estimators=140)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 训练模型-极端梯度提升生存树\n",
    "surv_func = ExtraSurvivalTrees(n_estimators=140,\n",
    "                           max_depth=13,\n",
    "                           max_features=6,\n",
    "                           min_samples_split=80,\n",
    "                           min_samples_leaf=10)\n",
    "surv_func.fit(xTrain, yTrain)\n",
    "# 训练时间：15s"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train score: 0.7498013286623585\n",
      "valid score: 0.7108762291166164\n"
     ]
    }
   ],
   "source": [
    "# 模型评估-----------------------------------------------------------\n",
    "# 一致性指数（可以用model.score 也可以用concordance_index_censored）\n",
    "scoreTrain = surv_func.score(xTrain, yTrain)\n",
    "scoreValid = surv_func.score(xValid, yValid)\n",
    "print('train score:',scoreTrain)\n",
    "print('valid score:',scoreValid)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train concordance index: 0.7517731581005023\n",
      "valid concordance index: 0.7105303108051437\n",
      "concordance index complete information: (0.7105303108051437, 2167013, 882840, 0, 10097)\n"
     ]
    }
   ],
   "source": [
    "from sksurv.metrics import concordance_index_censored\n",
    "# train\n",
    "trainPre = surv_func.predict(xTrain)\n",
    "concordanceIndexTrain = concordance_index_censored(yTrain['state'],\n",
    "        yTrain['lifetime'], trainPre)\n",
    "print('train concordance index:' ,concordanceIndexTrain[0])\n",
    "# valid\n",
    "validPre = surv_func.predict(xValid)\n",
    "concordanceIndexValid = concordance_index_censored(yValid['state'],\n",
    "        yValid['lifetime'], validPre)\n",
    "print('valid concordance index:' ,concordanceIndexValid[0])\n",
    "\n",
    "print('concordance index complete information:', concordanceIndexValid )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "range of time: lower: 28.0  ;upper: 235.0\n",
      "train integrated brier score: 0.16049871174929084\n",
      "train integrated brier score: 0.17116347708124094\n"
     ]
    }
   ],
   "source": [
    "# 综合Brier评分:与时间相关的Brier分数是时间点的均方误差, 综合Brier评分为总体性能\n",
    "from sksurv.metrics import integrated_brier_score\n",
    "lower, upper = np.percentile(label['lifetime'], [10, 95])  #计算分位数\n",
    "print('range of time: lower:',lower,' ;upper:', upper)\n",
    "timesIBS = np.arange(lower, upper + 1)\n",
    "# train\n",
    "predsTrain = np.row_stack([fn(timesIBS) for fn in surv_func.predict_survival_function(xTrain)])\n",
    "trainIBS = integrated_brier_score(label, yTrain, predsTrain, timesIBS)\n",
    "print('train integrated brier score:', trainIBS)\n",
    "# valid \n",
    "predsValid = np.row_stack([fn(timesIBS) for fn in surv_func.predict_survival_function(xValid)])\n",
    "validIBS = integrated_brier_score(label, yValid, predsValid, timesIBS)\n",
    "print('train integrated brier score:', validIBS)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 时序Brier评分（通过brier_score的累计绘制时序Brier图）\n",
    "from sksurv.metrics import brier_score\n",
    "# train\n",
    "sequentialBrierScoreTrain = []\n",
    "survsTrain = surv_func.predict_survival_function(xTrain)\n",
    "for time in timesIBS:\n",
    "    timepreds = [fn(time) for fn in survsTrain]\n",
    "    timeBS = brier_score(label, yTrain, timepreds, time)\n",
    "    sequentialBrierScoreTrain.append(timeBS[1])\n",
    "# print(sequentialBrierScoreTrain) \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'BS值')"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(timesIBS,sequentialBrierScoreTrain)\n",
    "plt.xlabel('专利生存期')\n",
    "plt.ylabel('BS值')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# valid\n",
    "sequentialBrierScoreValid = []\n",
    "survsValid = surv_func.predict_survival_function(xValid)\n",
    "for time in timesIBS:\n",
    "    timepreds = [fn(time) for fn in survsValid]\n",
    "    timeBS = brier_score(label, yValid, timepreds, time)\n",
    "    sequentialBrierScoreValid.append(timeBS[1])\n",
    "# print(sequentialBrierScoreTrain)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'BS值')"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(timesIBS,sequentialBrierScoreValid)\n",
    "plt.xlabel('专利生存期')\n",
    "plt.ylabel('BS值')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 样本预测-----------------------------------------------------------------\n",
    "# 样本风险评分预测\n",
    "samplePatents = xValid[:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([(False, 29.), (False, 28.), (False, 88.), (False, 90.),\n",
       "       (False, 90.)], dtype=[('state', '?'), ('lifetime', '<f8')])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "yValid[:5]\n",
    "# 测试集样本实例的实际情况"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([62.24618227, 63.6087784 , 82.1742497 , 64.20797052, 57.14703926])"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "surv_func.predict(samplePatents)###"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    63.549077\n",
       "1    63.867663\n",
       "2    89.574631\n",
       "3    63.360562\n",
       "4    54.688803\n",
       "dtype: float64"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sampleRiskScore = pd.Series(surv_func.predict(samplePatents))\n",
    "sampleRiskScore"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(5, 154)"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sampleSurv = surv_func.predict_survival_function(samplePatents, return_array=True)\n",
    "sampleSurv.shape ###"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "surv_func.event_times_ ###"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 生存函数\n",
    "sampleSurv = surv_func.predict_survival_function(samplePatents, return_array=True)\n",
    "\n",
    "for i, s in enumerate(sampleSurv):\n",
    "    plt.step(surv_func.event_times_, s, where=\"post\", label=str(i))\n",
    "plt.ylabel(\"Survival probability\")\n",
    "plt.xlabel(\"Time in months\")\n",
    "plt.legend()\n",
    "plt.grid(True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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VlZiwoQJ6NOnD+bOnYvc3Fyv10ZERETByeMwtGXLFowZMwaxsV0fEd567LarhzAuXLjQ5W34Wq0WRUVFKCoq6nI9REREFHo8vkz27//+7/jiiy98UQsRERGR33kchhYsWIC//OUvsFqtvqiHiIiIyK88vkzWq1cvVFdX44YbbsATTzzhMPXFzJkzvVocERERka95HIbWr19vf1bP5s2b7cslSWIYIiIiom7H4zBUUlLiizqIiIiIFOG1WesbGxu9dSgiIiIiv/G4Z+j8+fN4/vnn8fXXX9sHUQsh8NVXX+H8+fNeL5CIiIjIlzzuGXrwwQfx/fffw2AwwGAw4L777sPx48cxd+5cX9RHRERE5FMeh6H9+/fjb3/7G5YsWYLa2lrMnTsXRUVF2LZtmy/qIyIiIvIpj8NQv379sHPnTmRkZODLL7+EyWTC8OHDcfToUV/UR0RERORTHo8ZWrVqFWbMmIGJEyciOzsb1113HQDg5ptv9npxRERERL7mcRi69957ce7cOURGRqKwsBBvvfUW6uvr+YwhIiIi6pY6NWt9TEwMAECtVuPhhx/2akFERERE/uTxmKFHHnkEW7dudVhWV1eH/v37e60oIiIiIn/xOAytX78eDz/8MJ555hk0NTUBAJqamnDmzBmvF0dERETka516AvXHH3+MTz/9FOPGjcOFCxcANM9NRkRERNTdeByGJElCQkICdu3ahZtvvhkjRoxAcXGxL2ojIiIi8jmPB1ALIQAAKpUKK1euxC233MJB1ERERNRteRyGjh07hp49e9pf33XXXfj888+xe/durxZGRERE5A8eh6Frr722zbLk5GQ88MADXimIiIiIyJ84az0RERGFNM5aT0RERCGNs9YTERFRSOOs9URERBTSOGs9ERERhbROz1rfs2dPFBYWYtOmTfjpp584az0RERF1S12atR4AZs2a5a1aiIiIiPzO4zFD//M//4OUlBSo1eo2f4iIiIi6G497hubOnYtZs2Zh9uzZ0Ol0vqiJiIiIyG88DkOSJOHxxx/HoEGDfFEPERERkV95fJns+eefx5NPPonq6mpf1ENERETkV271DI0bNw6SJNlfl5WVYcCAARgyZAgiIyPtyzlZKxEREXU3boUh3jFGREREwcqtMPTwww/7ug4iIiIiRXg8ZshbLl26hIEDB6KiosKt7UtLSzFkyBDE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yM/Px7x58/i9CTAt28bX35uQn7WePDdjxgzMmDHD/vo///M/kZqaisGDB7d5PHpYWBgaGhoQExPj7zJDmkajcdkW7a1jO/meq++P0Whk2yhg+fLl6NGjBx5//HEsX76c35sA0rJttFqtT7837BmiLouOjkZTUxPi4+NRVVXlsK6urg46nU6hykJXbGysy7Zobx35n+37c/78ebaNnxUXF2PdunV46623oNVq+b0JIK3bpjVvf28YhshjixcvxubNm+2vDxw4AJVKheuuuw779u2zL6+oqIDZbEZsbKwSZYa0jIwMl23R3jryPVffn+TkZLaNH3333XeYMWMGCgoKMHToUAD83gQKZ23j8+9NFwZ9U4jasGGDSEtLE6WlpWLXrl1i8ODB4pFHHhGyLIvevXuLDRs2CCGEmDNnjpg8ebLC1YYOtLpjyVVbsJ38r2XbuPr+CMG28ZeGhgYxZMgQ8dhjj4m6ujr7n8bGRn5vFOaqbdavX+/T7w3DEHXKsmXLRHR0tEhOThYLFiwQ9fX1QojmWxwNBoPo06eP6NWrlygrK1O40tDR8heuEO23BdvJv1q3javvjxBsG3947733BIA2f06ePMnvjcLaaxtffm8kIfgITfKus2fP4uDBgxgzZgx69+6tdDkhrb22YDsFLraNsvi96Z660jYMQ0RERBTSOICaiIiIQhrDEBEREYU0hiEiIiIKaQxDREREFNIYhoiIiCikMQwRkUvr16+HJElt/uzZs8e+TUVFBSRJ8ltNe/bsQUpKit/O503r16/HbbfdpnQZRNQKwxARuTR9+nTU1NRg7969AICamhrU1NTglltusW/Tv39/v87cfcstt+Bf//qX387XWSkpKQ6hkYgCF2etJyKXdDoddDodevbsCaB5csTWVCqV0+W+otFoEBkZ6bfzEVHwY88QEXWJs8tkt912G3JycpCcnIxZs2bh8ccfR3R0NLZs2QKgeZLFUaNGISoqCvfeey9qa2vdPp+zy2S2y0+vvPIK+vbtiz59+uC//uu/OjxWSkoKnnjiCcTHx+Ppp5/Gr371K/Tu3RuHDh0CAOzduxc///nPERMTg+nTp+PHH3/s8HyTJk2CJEmorKzEuHHjIEkSVq9e7XBeV3W++eabSElJQUREBO68805cunTJ7c+FiDqPYYiIfOLEiRP461//ig0bNuC6667D5MmT8f777+PHH3/EnXfeibvvvhtHjx5FQ0MDnnrqqS6f78svv8R///d/45NPPsGsWbOwePFit/arra1FXl4eXnjhBcyaNQtDhw7Ftm3bcPr0adx1112YP38+Dh06hPr6esyaNavD8/33f/83ampqkJycjA8//BA1NTVYtGhRh/vV19cjJycHq1evRnl5OTQaDfLz87v8uRBRx3iZjIh8Yvr06fj5z38OAHjsscdw6dIlVFRUYMuWLdBqtcjLy4MkSVi0aBEeeuihLp+vvr4eGzZsQN++fTF79mz8+c9/dmu/hx9+GGFhYejbty/uuecevP/++5BlGW+++SbGjBmDxx57DACwbt06JCYm4sKFC+2eLyIiAkDz5cMePXq0uYToaj+1Wg2tVguz2Yw+ffrggw8+AGdLIvIP9gwRkU+EhYU5/fns2bOoqqpCTEwMoqOjcd9996GqqgqXL1/u0vmGDBmCvn37Amge6+RpnS1rBIDTp08jNTXV/rpfv37Q6/U4ffp0l87naj+DwYB3330XhYWF6N27NyZNmoTvvvvO7eMSUecxDBGRXyUlJeHGG2/E4cOHcfjwYRw5cgRffPEFtFptl47r7UHV/fv3dwgjZ8+ehdlsRv/+/d06n0qlctqz42q/S5cuISYmBv/4xz/w/fffo0+fPg6X14jIdxiGiMiv7r77blRWVmL//v1Qq9V45513MGnSpIC7JPTggw/in//8J1555RWcPHkSc+fORXZ2tr1XpyNpaWnYtm0bzp8/j127dnW4fXV1Ne644w5s27YNRqMRKpUKTU1NXX0bROQGhiEi8qvo6Gh88MEHePHFFzF48GC89957+OCDD6DRBNYQxqSkJHz00Uf429/+hhEjRiAiIgKvv/662/vn5+dj27ZtGDhwIFasWNHh9tdeey1efPFFzJ07F6mpqTh+/DheeOGFrrwFInKTJALtf8eIiIiI/Ig9Q0RERBTSGIaIiIgopDEMERERUUhjGCIiIqKQxjBEREREIY1hiIiIiEIawxARERGFNIYhIiIiCmkMQ0RERBTSGIaIiIgopP1/QTC/hmH/XAYAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 风险函数\n",
    "sampleHazard = surv_func.predict_cumulative_hazard_function(samplePatents, return_array=True)\n",
    "\n",
    "for i, s in enumerate(sampleHazard):\n",
    "    plt.step(surv_func.event_times_, s, where=\"post\", label=str(i))\n",
    "plt.ylabel(\"Cumulative hazard\")\n",
    "plt.xlabel(\"Time in months\")\n",
    "plt.legend()\n",
    "plt.grid(True)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)]"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "d207591e6ff77a7c5fb4cef0dd9fd3703274637a9d0902d2045beb3a65bf572a"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
